Offline Map Download

ABSTRACT

A system discloses analyzing global positioning system (GPS) parameters of a mobile device to determine if the mobile device is outside a predetermined range and if it is determined that the mobile device is outside the predetermined range, communicating a notification to the mobile device to download maps on the mobile device using an alternate communication channel.

BACKGROUND

Users of mobile devices use such mobile devices for a large number ofdifferent purposes, including communicating with other users via text,emails, social network applications, etc., getting information fromwebsites, social networks, mobile applications, etc., purchasing,getting directions, etc. Most of these activities require data to betransferred from and to the mobile device by one of manytelecommunication methods, such as cellular communication, communicationusing WiFi, etc. Depending on the location of the mobile device and asubscription agreement by the user of the mobile device with theproviders of the telecommunications network, some form of suchcommunication may be free while other forms of communication may carryvarying levels of costs for the user.

SUMMARY

Implementations described herein disclose a method for analyzing globalpositioning system (GPS) parameters of a mobile device to determine ifthe mobile device is outside a predetermined range and if it isdetermined that the mobile device is outside the predetermined range,communicating a notification to the mobile device to download maps onthe mobile device using an alternate communication channel.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Other implementations are also described and recited herein.

BRIEF DESCRIPTIONS OF THE DRAWINGS

FIG. 1 illustrates an example implementation of a system for providingoffline maps to a mobile device based on the location of the mobiledevice.

FIG. 2 illustrates an alternate example implementation of a system forproviding offline maps to a mobile device based on the location of themobile device.

FIG. 3 illustrates example operations for providing offline maps to amobile device based on the location of the mobile device.

FIG. 4 illustrates alternate example operations for providing offlinemaps to a mobile device based on the location of the mobile device.

FIG. 5 illustrates an example system that may be useful in implementingthe described technology.

FIG. 6 illustrates an example mobile device that may be useful inimplementing the described technology.

DETAILED DESCRIPTIONS

The technology disclosed herein allows users of mobile devices to useoffline maps when the mobile device is detected to be outside of itshome range. An offline map may be a map that can be loaded on a device,such as a mobile device, where the offline map 120 is available for useby the device even when the mobile device is not able to communicateusing any communication channels. An implementation of the systemdisclosed herein determines the home range of a mobile device and pingsthe mobile device periodically to determine if the mobile device isoutside the home range. If it is determined that the device is outsidethe home range, the system determines if the mobile device hasalternative communication channel, such as WiFi, available fordownloading the offline maps. The system determines the location of themobile device, such as the city, town, etc., and downloads the offlinemaps related to the location once the availability of such analternative communication channel is ascertained.

FIG. 1 illustrates an example implementation of a system 100 forproviding offline maps to a mobile device 104 based on the location ofthe mobile device 104. The mobile device 104 may be a cellular phone, asmartphone, an iPad, etc., that is configured with a GPS transceiver(not shown) that allows the mobile device 104 to communicate with a GPSsatellite 110. Note that while in the illustrated implementation, themobile device 104 is shown to communicates with a single GPS satellite110, in an alternative implementation, a network of GPS satellites 110may be provided. For example, the GPS satellite that communicates withthe mobile device 104 may depend on the location of the mobile device104.

The mobile device 104 may belong to a user that travels around theworld. For example, the user of the mobile device 104 may be a residentof the United States and may travel to various locations within theUnited States. In one implementation, the user may be a subscriber of atelecommunication service provider that provides a free or relativelycheap telecommunication service in a predetermined range to the user.For example, such predetermined range may be a geographic region or acollection of geographic regions. Note that such predetermined range maybe contiguous or non-contiguous. As an example, the boundary 106 of thecontinental United States may be such predetermined range within whichthe mobile device 104 is able to access telecommunications services froma service provider at such low rate. Such predetermined range 106 mayalso be referred to as the home range of the mobile device. Thus, asused herein, the term “home range” may refer to a geographic region orcollection of geographic regions within which a user may receive a baserate for telecommunications services.

The mobile device 104 may be used for a variety of purposes, includingfor phone calls, text messaging, checking emails, using one or moremobile applications based on the mobile device 104, for determining thelocation of the mobile device, data download and upload, etc. Forexample, a user may use a mapping application based on the mobile device104 to view the location of the mobile device 104 on a graphicalrepresentation of a map, to get direction from one location to anotherlocation, etc. Furthermore, such mapping application may also be used tofind direction to and or distance to various destinations, such ashotels, museums, etc.

When user requests such mapping information from an application based onthe mobile device 104, the mapping application or the mobile device 104may send a request to a mapping server 102 for data. For example, if themobile device 104 was located at a location A and wanted to getdirections to a location B, the mobile device 104 may send a request tothe mapping server 102 with such request and in response get informationthat may be interpreted by the mapping application of the mobile device104 to present such direction on a map on a screen of the mobile device104. The mapping server 102 may generate the appropriate mapping datausing various databases, processes, etc., and send such mapping data tothe mobile device 104. For example, the mapping server 102 may havecurrent data related to the traffic, road closures, etc., as well aspermanent data related to roads, businesses, etc., that can be used ingenerating the mapping data.

Such communication from the mobile device 104 to the mapping server 102and back from the mapping server 102 to the mobile device 104 mayconsume a large amount of data. Furthermore, such communication may alsorequire that there is an active channel of communication open betweenthe mobile device 104 and the server. In one implementation, suchchannel may be provided via a cellular network (not shown).Alternatively, such channel may be provided by a WiFi communicationbetween the mobile device 104 and another network, such as the Internet(not shown).

If a cellular network were used to communicate between the mobile device104 and the server 102, such communication may result in data charges tothe user of the mobile device 104. Such charges may depend on thenetwork subscription agreement between the user and the network. If themobile device 104 is outside the home range, the mobile device 104 maynot be able to use the cellular network and therefore it may not be ableto access the mapping server 102 to get mapping data. For example, auser based in the United States may be traveling to UK 116. In such acase, to get the mapping data using a mapping application, the mobiledevice 104 may have to access the mapping server 102 via a costly“roaming” service that may be available to the mobile device 104.

The system 100 allows the mobile device 104 to receive offline maps whenthe mobile device 104 is outside its home range. Specifically, the GPSsatellite 110 periodically pings the mobile device 104. The frequency ofthe pinging may be set by a user of the mobile device 104 as part ofdevice set up. Based on the time it may take to receive the responsefrom the mobile device 104. Specifically, the GPS satellite 110 mayanalyze the response from the mobile device 104 to determine thelatitude and the longitude of the mobile device 104. In oneimplementation of the system 100, the GPS satellite 100 may communicatethe latitude and the longitude of the mobile device 104 to the mappingserver 102.

The mapping server 102 may use the latitude and the longitude of themobile device 104 to determine whether the mobile device 102 is insideor outside the home range. For example, if the user of the mobile device104 is traveling outside the United States, the mapping server 102 willbe able to determine so based on the latitude and the longitude of themobile device 104. In response to such a determination, the mappingserver 102 further analyzes the latitude and the longitude of the mobiledevice 104 to determine the current location of the mobile device 104.In the illustrated example, such current location may be London, UK 116.

Upon determining that the mobile device 104 is outside its home range106 and in close proximity of London, UK 116, the mapping server 102generates various offline maps 120 of London and its vicinity. Suchoffline maps 120 may be in the form of offline map tiles that storevarious data about a geographic region, such as London UK 116. Forexample, the offline maps 120 may include data about the roads,directions, addresses, buildings, hotels, businesses, etc. Specifically,such offline maps 120 provide enough data to a mapping application ofthe mobile device 104 such that the user of the mobile device 104 isable to use a large number of capabilities of the mapping applicationwithout the mobile device 104's access to any communication network suchas cellular network, etc.

Once such offline maps 120 are prepared, the mapping server 102 sends anotification to the mobile device 104 about the availability of suchoffline maps 120. Such notification may be sent to the mobile device 104via a communication method that does not require the mobile device 104to have access to the cellular network. For example, such communicationmay be sent via an application interface that delivers that notificationwhen alternate manners of communications are available to the mobiledevice 104. Such alternative manners of communication maybe for example,WiFi, Bluetooth communication, near-field communication, Femtocellcommunication, etc.

Once the mobile device 104 has access to such an alternativecommunication method, the notification to download the offline maps 120is presented to the user of the mobile device 104 via an output of themobile device 104, such as a notification on a screen, a text message,an audio message, etc. Specifically, the notification may be presentedto the user of the mobile device 104 such that the user may make aselection whether to download the offline maps 120 or not. If the userselects to download the offline maps 120 using a WiFi connection, themapping server 102 pushes the offline maps 120 via the WiFi connectionof the mobile device 102.

In an alternative implementation, the mapping server 102 also sends oneor more additional notifications to the user of the mobile device 104 tosee if the user is interested in downloading additional offline mapsother than the offline maps 120 that the mapping server 102 has offeredto download to the mobile device 104 in the first place. In yet anotheralternative implementation, the mapping server 102 may be configured tostore various information about the user of the mobile device 104, suchas the user's preferences, past usage of mapping data, etc. For example,the mapping server 102 may store the past usage of the mapping databased on past requests for maps by the user of the mobile device 104 anddetermine that the user is interested in museums when the user travelsto different locations. In such case, the mapping server 102 mayautomatically populate the offline maps 120 with museum information.Similarly, if the past usage of the mapping data indicates that the useris generally interested in restaurants when traveling, the mappingserver 102 may automatically populate the offline maps 120 withadditional information about restaurants in the London area. Forexample, the mapping server 102 may populate the offline maps withadditional information, such as route to the restaurants, restauranthours, menu, etc., about restaurants before they are downloaded by theuser of the mobile device 104. Alternatively, the mapping server maysend such additional information to the mobile device 104 such that amapping application of the mobile device 104 can combine such additionalinformation with the offline maps stored on the mobile device 104.

In an alternative implementation, the mapping server 102 may store thepast usage of the mapping data based on past requests for maps by otherusers having preferences similar to the preferences of the user of themobile device 104 and determine that generally the users havingpreferences similar to the user of the mobile device 104 are interestedin art galleries when they travel to a given location where the user ofthe mobile device 104 is traveling. In such a case, the mapping server102 may automatically populate the offline maps 120 with informationabout art galleries.

FIG. 2 illustrates an alternate example implementation of a system 200for providing offline maps to a mobile device 204 based on the locationof the mobile device 204. Specifically, a mapping server 202 determinesthat location of the mobile device 204 to be outside a home range (notshown) of the mobile device 204 based on the GPS parameters, such aslatitude and longitude, of the mobile device 204. Furthermore, themapping server 202 may also determine that the mobile device 204 is inLondon UK, based on the GPS parameters. In such case, the mapping server202 may send a notification to the mobile device 204 to offer the userof the mobile device 204 to download one or more offline maps 220 whenthe mobile device is connected to a network. For example, the mappingserver 202 may send a notification to the mobile device 204 such thatthe notification is activated as soon as the mobile device 204 is ableto communicate using an alternative communication method such as WiFi,Bluetooth, NFC, etc.

Note that while in the implementation disclosed in FIG. 2, the mappingserver 202 determines the location of the mobile device 204 to beoutside the home range and sends a notification to the mobile device 204to download one or more offline maps 220, in an alternativeimplementation, the mobile device 204 may determine its own locationbased on the GPS parameters and initiate a request to the mapping server202 to send one or more offline maps 220 to the mobile device 204. Forexample, an application residing on the mobile device 204 may beconfigured to communicate with a GPS module of the mobile device 204 toprocess the GPS data to determine the location of the mobile device 204.When the mobile device 204 determines that it is located outside itshome range, it determines if it is able to communicate using anyalternative communication channels, such as WiFi, BlueTooth, NFC, etc.Once such a communication channel is available, the mobile device 204may send a request to the mapping server 202 for one or more offlinemaps 220.

In yet another alternative implementation, an application running on themobile device 204 that requests the offline maps 220 from the mappingserver 202 may also communicate with other applications on the mobiledevice, such as a search engine (Bing®, etc.) to determine one or moreuser preferences and modify the request for the offline maps 220 basedon such user preferences. For example, if past history of the searchengine indicates that the user of the mobile device 204 is interested inart galleries, the application may send a request to the mapping server202 for offline maps 220 with additional data about art galleries.

Specifically, the mapping server 202 offers a variety of offline maps220 suitable for the user of the mobile device 204. For example, if themapping server 202 may have stored past usage of a mapping applicationon the mobile device 204 to determine that the user of the mobile deviceis interested in various pubs. In which case, the mapping server 202automatically populates the offline maps 220 with information about pubs(e.g., Wenlock Arms) in the vicinity of the mobile device 204, as shownin the offline map 220 a. Similarly, an offline map 220 b includesinformation about various museums (e.g., Tate Modern) in the vicinity ofthe mobile device 204 whereas an offline map 220 c includes informationabout various hotels (e.g., Dorset Square Hotel) in the vicinity of themobile device 204.

In one implementation of the system 200, the mapping server 202 not onlyuses past usage of mapping application or mapping data by the user ofthe mobile device 202 to decide what information is to be added to theoffline maps 220, but it also communicates with and collects userpreferences from other applications on the mobile device 202, such as asocial networking application, a browsing application, etc., todetermine the preferences of the user of the mobile device 204. As aresult, the offline maps 220 provided to the user of the mobile device204 are more useful to the user and include targeted information so asto make more efficient use of short time frames during which alternatecommunication channels such as WiFi, etc., may be available. Forexample, the mobile device 204 may have the alternate communicationchannel available only when the user of the mobile device is in a hotelthat provides WiFi. Moreover, in various developing countries, suchalternate communication channels, such as WiFi, may have quite lowdownload bandwidth. Furthermore, by populating the offline maps 220 withinformation that the user of the mobile device 204 is most likely touse, the mapping server 202 reduces the potential needs of the user toask for additional information while the mobile device 204 is offline.For example, as a result of populating the offline maps 220 withinformation about art galleries, the user of the mobile device 204 hasless need to ask for such information using relatively expensivecellular communication that may result in roaming charges.

In yet another alternative implementation, an application resident onthe mobile device 204 may analyze the offline maps 220 stored on themobile device 204 on a periodic basis to determine if one or more of theoffline maps 220 should be deleted. Alternatively, such an applicationmay initiate such analysis of the offline maps 220 stored on the mobiledevice 204 in response to a change of location of the mobile device 204.Such deletion of the offline maps 220 from the mobile device 204 ensuresthat the offline maps 220 that may not be relevant to the user of themobile device 204 are deleted so as to conserve data storage space onthe mobile device 204. Alternatively, such deletion of the offline maps220 may be based on user preferences. Yet alternatively, such deletionof the offline maps 220 may be in response to a timeout, such as apredetermined time period after the offline maps 220 are downloaded onthe storage device 204.

FIG. 3 illustrates example operations 300 for providing offline maps toa mobile device based on the location of the mobile device. An operation302 determines a home range of the mobile device. The operation 302 maydetermine the home range based on a parameter of the mobile device, asetting in the mobile device, etc. For example, when the user of themobile device sets up the mobile device, the user may have established ahome location of the mobile device as being, for example, Colorado. Insuch case, the operation 302 may determine the continental United Statesto be the home range of the mobile device.

A determining operation 304 may constantly monitor the GPS parameters ofthe mobile device to determine if the mobile device has moved outsidethe home range. For example, the operation 304 may ping the mobiledevice at predetermined intervals to determine the GPS parameters of themobile device and analyze the GPS parameters to determine currentlocation of the mobile device. The operation 304 compares the currentlocation with the home range of the mobile device to determine if themobile device is within its home range or not. For example, suchdetermination may involve comparing of the GPS parameters of the mobiledevice with a range of GPS parameters to determine if the GPS parametersof the mobile device are within such range latitude-wise andlongitude-wise. If the operation 304 determines that the mobile deviceis within its home range, an operation 306 resets a counter and theoperation 304 may repeat.

If the operation 304 determines that the mobile device is outside itshome range, an operation 308 determines whether the mobile device is ina different country than a home country of the user of the mobiledevice. Again, such determination of whether the mobile device is in adifferent country or not may be done by comparison of the GPS parametersof the mobile device with ranges of latitude/longitude for differentcountries. As an example, the latitude/longitude of the mobile devicemay fall within a range that indicates that the mobile device is in UK.In one implementation, if the operation 308 determines that the mobiledevice is in a different country, an operation 310 determines thelocation of the mobile device including the city, town, etc., where themobile device is located. For example, if the user of the mobile deviceis traveling to UK, the location of the mobile device may be London.

An operation 312 sends a notification to the mobile device to sendoffline maps of the location where the mobile device is located. Forexample, such notification may be sent to the mobile device by a mappingserver via an interface to the mobile device via a mapping applicationof the mobile device. Alternatively, such notification may be sent viaother means, such as a text message, a pop-up notification, etc. Thenotification may be such that the user of the mobile device can respondto it to activate an action. In one implementation, the notification maybe configured such that it is activated only when an alternativecommunication channel, such as WiFi, NFC, Bluetooth, etc., are availableto the mobile device.

An operation 314 determines if such an alternative connection isavailable for the mobile device to communicate. Once it determines anavailability of such an alternative communication channel, an operation316 activates the notification. In one implementation, an operation 318determines if a user of the mobile device has taken an action to consentto downloading of the offline maps. If such consent is received, anoperation 320 downloads the offline maps. However, in an alternativeimplementation, the operations 300 do not wait for a consent from theuser and in such an implementation, upon activating the notification,the operation 320 may automatically initiate downloading of the offlinemap. For example, in such a case, an additional operation (not shown)may indicate to the user of the mobile device when the offline mapdownload operation is complete.

FIG. 4 illustrates alternate example operations 400 for providingoffline maps to a mobile device based on the location of a mobiledevice. An operation 402 pings a GPS module of the mobile device tocollect the GPS parameters of the mobile device. For example, suchmobile device may be a cellular phone and the GPS parameters collectedfrom its GPS module may be the parameters that allows determination ofthe latitude/longitude of the mobile device using a triangulationmethod. An operation 404 analyzes the GPS parameters to determine acurrent location of the mobile device. Such analysis may further includecomparing the current location of the mobile device with a home range ofthe mobile device. For example, such home range may be the range wherethe mobile device does not incur roaming charges, higher data charges,etc.

An operation 406 determines if the mobile device is outside the homerange. If so, an operation 408 determines the location of the mobiledevice, such as the city, town, geographic coordinates of the location,etc. For example, if the user of the mobile device is traveling thoughPeru, the operation 408 determines that the mobile device is in Limawhen the GPS parameters of the mobile device indicate so. An operation410 determines if offline maps are available for the location of themobile device. For example, if during the user's travel through Peru,the mobile device is located in a rural area of Peru, the operation 410may determine that such offline maps are not available for such a remotelocation. In such a case, an operation 412 sends a notification to themobile device of such unavailability of the offline maps.

If the offline maps are available, an operation 414 selects the offlinemaps for download. Such selection of the offline maps may be made basedon preferences provided by the user of the mobile device, past usage ofmaps by the user of the mobile device, etc. For example, if the mobiledevice is indicated to be in Cusco, Peru, given the likelihood of theuser traveling from Cusco to Aguas Caliente, the operation 414 mayautomatically download offline maps of Cusco, Aguas Caliente, the roadbetween the two, etc. Alternatively, the operation 414 may select suchmaps based on predetermined preferences of the user. For example, theuser may have specified that they prefer information about historicsites when travelling abroad, in which case, the operation 414 mayselect offline maps with information about historic sites near Cusco, orpopulate the offline maps with additional information about suchhistoric sites.

An operation 416 determines if the mobile device is able to communicateusing any alternative channels for communication. For example, suchalternative channels may include WiFi, NFC, Bluetooth, Femtocell, etc.An operation 418 selects an appropriate communication channel. Forexample, a communication channel with the highest throughput fordownloading the offline maps may be used. In one implementation, anadditional operation (not shown) may select the offline maps to bedownloaded by the mobile device based on the selected communicationchannel and the speed of the selected communication channel. Thus, ifthe selected communication channel is slow, basic offline maps areselected. On the other hand, if the selected communication channel haslarge download bandwidth, rich offline maps may be selected. Anoperation 420 downloads the offline maps to the mobile device.

FIG. 5 illustrates an example system 500 that may be useful inimplementing the described technology for providing offline maps. Theexample hardware and operating environment of FIG. 5 for implementingthe described technology includes a computing device, such as a generalpurpose computing device in the form of a computer 20, a mobiletelephone, a personal data assistant (PDA), a tablet, smart watch,gaming remote, or other type of computing device. In the implementationof FIG. 5, for example, the computer 20 includes a processing unit 21, asystem memory 22, and a system bus 23 that operatively couples varioussystem components including the system memory to the processing unit 21.There may be only one or there may be more than one processing unit 21,such that the processor of computer 20 comprises a singlecentral-processing unit (CPU), or a plurality of processing units,commonly referred to as a parallel processing environment. The computer20 may be a conventional computer, a distributed computer, or any othertype of computer; the implementations are not so limited.

The system bus 23 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, aswitched fabric, point-to-point connections, and a local bus using anyof a variety of bus architectures. The system memory may also bereferred to as simply the memory, and includes read only memory (ROM) 24and random access memory (RAM) 25. A basic input/output system (BIOS)26, containing the basic routines that help to transfer informationbetween elements within the computer 20, such as during start-up, isstored in ROM 24. The computer 20 further includes a hard disk drive 27for reading from and writing to a hard disk, not shown, a magnetic diskdrive 28 for reading from or writing to a removable magnetic disk 29,and an optical disk drive 30 for reading from or writing to a removableoptical disk 31 such as a CD ROM, DVD, or other optical media.

The hard disk drive 27, magnetic disk drive 28, and optical disk drive30 are connected to the system bus 23 by a hard disk drive interface 32,a magnetic disk drive interface 33, and an optical disk drive interface34, respectively. The drives and their associated tangiblecomputer-readable media provide non-volatile storage ofcomputer-readable instructions, data structures, program modules andother data for the computer 20. It should be appreciated by thoseskilled in the art that any type of tangible computer-readable media maybe used in the example operating environment.

A number of program modules may be stored on the hard disk drive 27,magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including anoperating system 35, one or more application programs 36, other programmodules 37, and program data 38. A user may generate reminders on thepersonal computer 20 through input devices such as a keyboard 40 andpointing device 42. Other input devices (not shown) may include amicrophone (e.g., for voice input), a camera (e.g., for a natural userinterface (NUI)), a joystick, a game pad, a satellite dish, a scanner,or the like. These and other input devices are often connected to theprocessing unit 21 through a serial port interface 46 that is coupled tothe system bus, but may be connected by other interfaces, such as aparallel port, game port, or a universal serial bus (USB). A monitor 47or other type of display device is also connected to the system bus 23via an interface, such as a video adapter 48. In addition to themonitor, computers typically include other peripheral output devices(not shown), such as speakers and printers.

The computer 20 may operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer 49.These logical connections are achieved by a communication device coupledto or a part of the computer 20; the implementations are not limited toa particular type of communications device. The remote computer 49 maybe another computer, a server, a router, a network PC, a client, a peerdevice or other common network node, and typically includes many or allof the elements described above relative to the computer 20. The logicalconnections depicted in FIG. 5 include a local-area network (LAN) 51 anda wide-area network (WAN) 52. Such networking environments arecommonplace in office networks, enterprise-wide computer networks,intranets and the Internet, which are all types of networks.

When used in a LAN-networking environment, the computer 20 is connectedto the local network 51 through a network interface or adapter 53, whichis one type of communications device. When used in a WAN-networkingenvironment, the computer 20 typically includes a modem 54, a networkadapter, a type of communications device, or any other type ofcommunications device for establishing communications over the wide areanetwork 52. The modem 54, which may be internal or external, isconnected to the system bus 23 via the serial port interface 46. In anetworked environment, program engines depicted relative to the personalcomputer 20, or portions thereof, may be stored in the remote memorystorage device. It is appreciated that the network connections shown areexamples and other means of communications devices for establishing acommunications link between the computers may be used.

In an example implementation, software or firmware instructions forproviding offline maps may be stored in memory 22 and/or storage devices29 or 31 and processed by the processing unit 21. Rules for providingoffline maps may be stored in memory 22 and/or storage devices 29 or 31as persistent datastores. For example, an offline map download modulemay be implemented with instructions stored in the memory 22 and/orstorage devices 29 or 31 and processed by the processing unit 21.Similarly, a GPS parameter processing module may also be implementedwith instructions stored in the memory 22 and/or storage devices 29 or31 and processed by the processing unit 21. The memory 22 may be used tostore one or more offline maps.

FIG. 6 illustrates another example system (labeled as a mobile device600) that may be useful in implementing the described technology. Themobile device 600 includes a processor 602, a memory 604, a display 606(e.g., a touchscreen display), and other interfaces 608 (e.g., akeyboard). The memory 604 generally includes both volatile memory (e.g.,RAM) and non-volatile memory (e.g., flash memory). An operating system610, such as the Microsoft Windows® Phone operating system, resides inthe memory 604 and is executed by the processor 602, although it shouldbe understood that other operating systems may be employed.

One or more application programs 612 are loaded in the memory 604 andexecuted on the operating system 610 by the processor 602. Examples ofapplications 612 include without limitation email programs, schedulingprograms, personal information managers, Internet browsing programs,multimedia player applications, etc. A notification manager 614 is alsoloaded in the memory 604 and is executed by the processor 602 to presentnotifications to the user. For example, when a promotion is triggeredand presented to the shopper, the notification manager 614 can cause themobile device 600 to beep or vibrate (via the vibration device 618) anddisplay the promotion on the display 606.

The mobile device 600 includes a power supply 616, which is powered byone or more batteries or other power sources and which provides power toother components of the mobile device 600. The power supply 616 may alsobe connected to an external power source that overrides or recharges thebuilt-in batteries or other power sources.

The mobile device 600 includes one or more communication transceivers630 to provide network connectivity (e.g., mobile phone network, Wi-Fi®,Bluetooth®, etc.). The mobile device 600 also includes various othercomponents, such as a positioning system 620 (e.g., a global positioningsatellite transceiver), one or more accelerometers 622, one or morecameras 624, an audio interface 626 (e.g., a microphone, an audioamplifier and speaker and/or audio jack), and additional storage 628.Other configurations may also be employed.

In an example implementation, a mobile operating system, variousapplications, and other modules and services may be embodied byinstructions stored in memory 604 and/or storage devices 628 andprocessed by the processing unit 602. User preferences, service options,and other data may be stored in memory 604 and/or storage devices 628 aspersistent datastores.

In contrast to tangible computer-readable storage media, intangiblecomputer-readable communication signals may embody computer readableinstructions, data structures, program modules or other data resident ina modulated data signal, such as a carrier wave or other signaltransport mechanism. The term “modulated data signal” means a signalthat has one or more of its characteristics set or changed in such amanner as to encode information in the signal. By way of example, andnot limitation, intangible communication signals include wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

Some embodiments may comprise an article of manufacture. An article ofmanufacture may comprise a tangible storage medium to store logic.Examples of a storage medium may include one or more types ofcomputer-readable storage media capable of storing electronic data,including volatile memory or non-volatile memory, removable ornon-removable memory, erasable or non-erasable memory, writeable orre-writeable memory, and so forth. Examples of the logic may includevarious software elements, such as software components, programs,applications, computer programs, application programs, system programs,machine programs, operating system software, middleware, firmware,software modules, routines, subroutines, functions, methods, procedures,software interfaces, application program interfaces (API), instructionsets, computing code, computer code, code segments, computer codesegments, words, values, symbols, or any combination thereof. In oneembodiment, for example, an article of manufacture may store executablecomputer program instructions that, when executed by a computer, causethe computer to perform methods and/or operations in accordance with thedescribed embodiments. The executable computer program instructions mayinclude any suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code, and thelike. The executable computer program instructions may be implementedaccording to a predefined computer language, manner or syntax, forinstructing a computer to perform a certain function. The instructionsmay be implemented using any suitable high-level, low-level,object-oriented, visual, compiled and/or interpreted programminglanguage.

The system for offline maps may include a variety of tangiblecomputer-readable storage media and intangible computer-readablecommunication signals. Tangible computer-readable storage can beembodied by any available media that can be accessed by the remotedesktop experience controller 115 and includes both volatile andnonvolatile storage media, removable and non-removable storage media.Tangible computer-readable storage media excludes intangible andtransitory communications signals and includes volatile and nonvolatile,removable and non-removable storage media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Tangiblecomputer-readable storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CDROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other tangible medium which can be used to store the desiredinformation and which can be accessed by the remote desktop experiencecontroller 115. In contrast to tangible computer-readable storage media,intangible computer-readable communication signals may embody computerreadable instructions, data structures, program modules or other dataresident in a modulated data signal, such as a carrier wave or othersignal transport mechanism. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, intangible communication signals include wired mediasuch as a wired network or direct- wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

An example system includes a memory, one or more processor units, aplurality of maps stored in the memory, each of the plurality of mapsrelated to a geographic location, a GPS parameter processing modulestored in the memory and executable by the one or more processor units,the GPS parameter processing module configured to analyze GPS parametersreceived from a mobile device to determine a location of the mobiledevice, and a map download module stored in the memory and executable bythe one or more processor units, the map download module configured todetermine if the mobile device is outside a predetermined range and ifit is determined that the mobile device is outside the predeterminedrange, further configured to send a notification to the mobile device todownload one or more of the plurality of maps.

An example physical article of manufacture includes one or more tangiblecomputer-readable storage media, encoding computer-executableinstructions for executing on a computer system a computer process, thecomputer process comprising determining, using graphical positioningsystem (GPS) parameters of a mobile device, whether the mobile device isoutside its home range, selecting one or more maps related a location ofthe mobile device outside the home range; and communicating anotification to the mobile device to download the one or more maps.

Another example physical article of manufacture includes one or moretangible computer-readable storage media, encoding computer-executableinstructions for executing on a computer system a computer process,wherein the computer process further comprising determining availabilityof a communication channel for the mobile device, where thecommunication channel allows downloading data without incurring datacharges for the mobile device.

Yet another example physical article of manufacture includes one or moretangible computer-readable storage media, encoding computer-executableinstructions for executing on a computer system a computer process,wherein the computer process further comprising communicating the mapsto the mobile device using the communication channel.

An example method comprises pinging a graphical positioning system (GPS)module of a mobile device at a predetermined frequency to receive GPSparameters of the mobile device, and analyzing the GPS parameters of themobile device to determine if the mobile device is outside apredetermined range, and if it is determined that the mobile device isoutside the predetermined range, communicating a notification to themobile device to download maps on the mobile device.

Another example method further comprises determining the geographiclocation of the mobile device, if it is determined that the mobiledevice is outside the predetermined range.

Another example method further comprises determining if the mobiledevice is capable of communicating using WiFi and if it is determinedthat the mobile device is capable of communicating using WiFicommunicating the notification to the mobile device to download the mapson the mobile device.

In another example method, the predetermined range is a home range for auser of the mobile device. In yet another example method, thepredetermined range is based on a subscription plan of the mobiledevice. In another example method, the predetermined range is a homecountry of a user of the mobile device.

Another example method further comprises receiving an input from a userof the mobile device including the types of maps to download on themobile device and in response to the input, downloading the types ofmaps to the mobile device.

Yet another method further comprises communicating with the mobiledevice to determine a data download speed available to the mobile deviceif it is determined that the mobile device is outside the predeterminedrange, selecting maps based on the available download speed, and pushingthe selected maps to the mobile device.

An example system comprises a memory, one or more processor units, a aplurality of maps stored in the memory, each of the plurality of mapsrelated to a geographic location, a GPS parameter processing modulestored in the memory and executable by the one or more processor units,the GPS parameter processing module configured to analyze GPS parametersreceived from a mobile device to determine a location of the mobiledevice, and a map download module stored in the memory and executable bythe one or more processor units, the map download module configured todetermine if the mobile device is outside a predetermined range and ifit is determined that the mobile device is outside the predeterminedrange, further configured to send a notification to the mobile device todownload one or more of the plurality of maps.

In another example system, the map download module is further configuredto determine the geographic location of the mobile device upondetermining that the mobile device is outside the predetermined range.In yet another example system, the map download module is furtherconfigured to determine the geographic location of the mobile deviceupon determining that the mobile device is outside the predeterminedrange. In yet another example system, the map download module is furtherconfigured to select the one or more of the plurality of maps based onthe geographic location of the mobile device. In yet another examplesystem, the map download module is further configured to select the oneor more of the plurality of maps based on one or more preferences of auser of the mobile device.

In yet another example system, the map download module is furtherconfigured to determine a communication channel available to the mobiledevice and to send the maps to the mobile device via the communicationchannel.

The above specification, examples, and data provide a completedescription of the structure and use of exemplary embodiments of theinvention. Since many implementations of the invention can be madewithout departing from the spirit and scope of the invention, theinvention resides in the claims hereinafter appended. Furthermore,structural features of the different embodiments may be combined in yetanother implementation without departing from the recited claims.

1. A system comprising: memory; one or more processor units; a pluralityof offline maps stored in the memory, each of the plurality of offlinemaps related to a geographic location; a GPS parameter processing modulestored in the memory and executable by the one or more processor units,the GPS parameter processing module configured to analyze GPS parametersreceived from a mobile device to determine a location of the mobiledevice; and a map download module stored in the memory and executable bythe one or more processor units, the map download module configured todetermine that the mobile device is outside a predetermined range, senda notification to the mobile device to download one or more of theplurality of offline maps in response to determining that the mobiledevice is outside the predetermined range, determine if a user of themobile device has taken an action to consent to downloading of theoffline maps, and in response to receiving the consent, download the oneor more of the plurality of offline maps.
 2. The system of claim 1,wherein the map download module is further configured to determine thegeographic location of the mobile device upon determining that themobile device is outside the predetermined range.
 3. The system of claim1, wherein the map download module is further configured to determinethe geographic location of the mobile device upon determining that themobile device is outside the predetermined range and send a notificationto download one or more offline maps related to the geographic locationof the mobile device.
 4. The system of claim 3, wherein the map downloadmodule is further configured to select the one or more of the pluralityof maps based on the geographic location of the mobile device. 5.(canceled)
 6. The system of claim 3, wherein the map download module isfurther configured to populate the one or more of the plurality of mapsbased on the one or more preferences of the user of the mobile device.7. The system of claim 3, wherein the map download module is furtherconfigured to determine a communication channel available to the mobiledevice and to send the maps to the mobile device via the communicationchannel.
 8. A method, comprising: pinging a graphical positioning system(GPS) module of a mobile device at a predetermined frequency to receiveGPS parameters of the mobile device; analyzing the GPS parameters of themobile device to determine that the mobile device is outside apredetermined range, wherein the predetermined range is a range withinwhich the mobile device is able to access telecommunications servicesfrom a service provider without incurring roaming charges; determiningif the mobile device has access to alternative communication method; andin response to determining that the mobile device is outside thepredetermined range and that the mobile device has access to alternativecommunication method, presenting a notification to download offline mapson the mobile device.
 9. The method of claim 8, further comprising: inresponse to determining that the mobile device is outside thepredetermined range, determining the geographic location of the mobiledevice.
 10. The method of claim 8, wherein presenting a notification onthe mobile device further comprising: determining that the mobile deviceis capable of communicating using WiFi; and in response to determiningthat the mobile device is capable of communicating using WiFi presentingthe to download the offline maps on the mobile device.
 11. The method ofclaim 8, wherein the predetermined range is a home range for a user ofthe mobile device.
 12. The method of claim 8, wherein the predeterminedrange is based on a subscription plan of the mobile device.
 13. Themethod of claim 8, wherein the predetermined range is a home country ofa user of the mobile device.
 14. The method of claim 8, wherein thenotification further comprises a request to identify types of maps todownload on the mobile device.
 15. The method of claim 14, furthercomprising receiving an input from a user of the mobile device includingthe types of maps to download on the mobile device and in response tothe input, downloading the types of maps to the mobile device.
 16. Themethod of claim 8, further comprising: in response to determining thatthe mobile device is outside the predetermined range, communicating withthe mobile device to determine a data download speed available to themobile device; selecting maps based on the available download speed; andpushing the selected maps to the mobile device.
 17. A physical articleof manufacture including one or more tangible computer-readable storagemedia, encoding computer-executable instructions for executing on acomputer system a computer process, the computer process comprising:determining, using graphical positioning system (GPS) parameters of amobile device, whether the mobile device is outside its home range,wherein the home range is a geographic range within which the mobiledevice is able to access telecommunications services from a serviceprovider without incurring roaming charges; determining if the mobiledevice is able to communicate using an alternative communication method;and in response to determining that the mobile device is outside itshome range and that it is able to communicate using an alternativecommunication method, communicating a request to a mapping server forone or more offline maps.
 18. The physical article of manufacture ofclaim 17, wherein the the alternative communication channel allowsdownloading data without incurring data charges for the mobile device.19. The physical article of manufacture of claim 18, wherein thecomputer process further comprising receiving the one or more offlinemaps using the alternative communication channel.
 20. The physicalarticle of manufacture of claim 17, further comprising selecting or moremaps further comprising selecting one or more maps based on past mappingapplication usage by the mobile device.